package com.yuchao.base.xyc004.strategy;

/**
 * Created by xingyuchao on 2017-06-25.
 * 策略模式测试类
 */
public class Main {

    public static void main(String[] args) {

        //优点： 1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。
        // 缺点： 1、策略类会增多。 2、所有策略类都需要对外暴露。
        // 个人感觉策略模式和委派模式很像
        int execute = new Calculator(new CalculatorPlus()).execute(10, 2);
        System.out.println(execute);

        execute = new Calculator(new CalculatorReduce()).execute(10, 2);
        System.out.println(execute);

        execute = new Calculator(new CalculatorRide()).execute(10, 2);
        System.out.println(execute);

        execute = new Calculator(new CalculatorExcept()).execute(10, 2);
        System.out.println(execute);

    }
}